// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
// 入口文件

import Vue from 'vue'
// mint-ui 的全部导入
import MintUi from 'mint-ui'
Vue.use(MintUi)

// Vue.use(MintUi, {
//   lazyload: {
//     preLoad: 1.3,
//     //表示出错时显示的图片
//     error: './images/menu1.png',
//     //表示未加载之前显示的图片
//     loading: './assets/logo.png',
//     attempt: 1,
//     filter: {
//       webp(listener, options) {

//       },
//     },
//   },
// })

// import { Header, Swipe, SwipeItem, Button, Lazyload } from 'mint-ui'
// Vue.component(Header.name, Header)
// Vue.component(Swipe.name, Swipe)
// Vue.component(SwipeItem.name, SwipeItem)
// Vue.component(Button.name, Button)
// Vue.use(Lazyload)

import '../node_modules/mint-ui/lib/style.css'
import './lib/normalize.css'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
Vue.use(ElementUI)
// 引入bootstrap
import '../node_modules/bootstrap/dist/css/bootstrap.css'

// 使用Vue-resource
import VueResource from 'vue-resource'
Vue.use(VueResource)
// 设置请求的根路径
Vue.http.options.root = 'http://www.liulongbin.top:3005/';

// 时间格式插件
import moment from 'moment'
Vue.filter('dateFormat', (dateStr, pattern = "YYYY-MM-DD HH:mm:ss") => {
  return moment(dateStr).format(pattern)
})

// vuex的使用
import Vuex from 'vuex'
Vue.use(Vuex)

// 先从本地存储中提取数据
var car = JSON.parse(localStorage.getItem("car") || '[]')

// 创建数据仓库对象
const store = new Vuex.Store({
  state: {
    // num: 10,
    // {id:商品的ID,count:商品的数量, price:商品的价格,selected:false},
    car: car,
  },
  mutations: {
    // 改变car中的选中状态
    updategoodsselected(state,info){
      state.car.some(item => {
        if (item.id == info.id) {
          item.selected = info.selected
        }
      })
      // 内存内的更改
      localStorage.setItem('car',JSON.stringify(state.car))
    },

    // 删除购物车中的数据
    removefromcar(state,id){
      state.car.some((item,i) => {
        if (item.id == id) {
          state.car.splice(i,1)
        }
      })
      // 内存中数据同步，解析成json字符串
      localStorage.setItem('car',JSON.stringify(state.car))
    },
    // 修改购物车中商品的数量
    updatedgoodsinfo(state, num) {
      // num数据：{id: 87, count: 3}
      state.car.some(item => {
        if (item.id == num.id) {
          item.count = parseInt(num.count)
          return true
        }
      })
      // 当修改完商品的数量，把最新的购物车数据，保存到 本地存储中
      localStorage.setItem('car', JSON.stringify(state.car))
    },

    addtocar(state, carinfo) {
      var flag = false
      state.car.some(item => {
        if (item.id == carinfo.id) {
          item.count += parseInt(carinfo.count)
          flag = true
          return true
        }
      })
      if (!flag) {
        state.car.push(carinfo)
      }
      localStorage.setItem('car', JSON.stringify(state.car))
    },
    subtract(state) {
      state.num--
    },

  },
  getters: {
    // 计算总价与数量
    getgoodscountandamount(state){
      var o = {
        count: 0,
        amount: 0
      }
      state.car.forEach(item => {
        if (item.selected) {
          o.count += item.count
          o.amount += item.count * item.price
        }
      })
      return o
    },
    // 最终要输入的结果为{id:count,id:count}
    getgoodscount(state) {
      var o = {}
      state.car.forEach(item => {
        o[item.id] = item.count
      });
      return o
    },
    getgoodsselected(state){
      var o = {}
      state.car.forEach(item => {
        o[item.id] = item.selected
      })
      return o
    }


  },


})

import app from './App.vue'
import router from './router'
import VueRouter from 'vue-router'
Vue.use(VueRouter)
new Vue({
  el: '#app',
  data: {

  },
  render: c => c(app),
  router,
  store: store
})
